Groovy তে কালেকশনস খুবই গুরুত্বপূর্ণ একটি ধারণা, যা ডেটা স্টোর করার জন্য ব্যবহৃত হয়। Groovy তে বিভিন্ন ধরনের কালেকশন ডেটা স্ট্রাকচার রয়েছে, যেমন List, Set, Map ইত্যাদি। Groovy এর কালেকশনগুলির সবচেয়ে বড় সুবিধা হল এর শক্তিশালী এবং সহজ ব্যবহারযোগ্য বৈশিষ্ট্য, যা কোড লেখাকে আরও দ্রুত এবং সহজ করে তোলে। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হয়, তাই আপনি সহজেই বিভিন্ন ধরনের কালেকশন কাজ করতে পারেন এবং প্রোগ্রামিংয়ের সময় তাদের উপর বিভিন্ন অপারেশন করতে পারেন।
এখানে Groovy তে ব্যবহৃত কিছু জনপ্রিয় কালেকশন এবং তাদের বৈশিষ্ট্য নিয়ে আলোচনা করা হলো।
Groovy তে List একটি অর্ডারড কালেকশন, যার মধ্যে একটি নির্দিষ্ট অর্ডারে উপাদান রাখা হয়। এটি ডুপ্লিকেট উপাদান সমর্থন করে এবং যে কোনও ধরনের ডেটা ধারণ করতে সক্ষম।
def list = [1, 2, 3, 4, 5]
println list // Output: [1, 2, 3, 4, 5]
এখানে, list
একটি সাধারণ তালিকা যা পূর্ণসংখ্যা ধারণ করে।
println list[0] // Output: 1
println list.get(2) // Output: 3
এখানে, list[0]
বা list.get(2)
এর মাধ্যমে তালিকার নির্দিষ্ট উপাদান অ্যাক্সেস করা হয়েছে।
Groovy তে তালিকার উপর বিভিন্ন অপারেশন করা যায়। যেমন, add
, remove
, collect
ইত্যাদি:
list.add(6) // Add 6 to the list
println list // Output: [1, 2, 3, 4, 5, 6]
list.remove(2) // Remove element at index 2
println list // Output: [1, 2, 4, 5, 6]
def doubled = list.collect { it * 2 } // Double each element
println doubled // Output: [2, 4, 8, 10, 12]
Groovy তে Set একটি আনঅর্ডারড কালেকশন, যেখানে একে অপরের থেকে আলাদা উপাদান থাকে। সেটটি ডুপ্লিকেট উপাদান গ্রহণ করে না। এটি শুধুমাত্র ইউনিক উপাদান ধারণ করে।
def set = [1, 2, 3, 4, 5] as Set
println set // Output: [1, 2, 3, 4, 5]
এখানে, set
একটি সেট যা ইউনিক উপাদান ধারণ করে।
set.add(6) // Add 6 to the set
println set // Output: [1, 2, 3, 4, 5, 6]
set.remove(4) // Remove 4 from the set
println set // Output: [1, 2, 3, 5, 6]
println set.contains(3) // Output: true
এখানে, set
এর মধ্যে উপাদান যোগ এবং মুছে ফেলা হয়েছে এবং contains
মেথড ব্যবহার করে চেক করা হয়েছে যে উপাদানটি সেটে আছে কিনা।
Groovy তে Map একটি কীগুলির সেট যা মানের সাথে যুক্ত থাকে। প্রতিটি কীগুলির একটি মান থাকে, এবং এটি ডেটা অ্যাক্সেস করার জন্য খুবই কার্যকরী।
def map = [name: "John", age: 25]
println map // Output: [name:John, age:25]
এখানে, map
একটি ম্যাপ যা দুটি কিজ (key) এবং মান (value) ধারণ করে।
println map['name'] // Output: John
println map.age // Output: 25
এখানে, map['name']
বা map.age
এর মাধ্যমে ম্যাপের মান অ্যাক্সেস করা হয়েছে।
map.put('location', 'New York') // Add a new key-value pair
println map // Output: [name:John, age:25, location:New York]
map.remove('age') // Remove the 'age' entry
println map // Output: [name:John, location:New York]
এখানে, put
মেথড ব্যবহার করে নতুন কিজ-ম্যাপ এন্ট্রি যোগ করা হয়েছে এবং remove
মেথড ব্যবহার করে একটি কিজ-ম্যাপ এন্ট্রি মুছে ফেলা হয়েছে।
Groovy তে Range একটি বিশেষ ধরনের কালেকশন যা সিকোয়েন্স বা ধারাবাহিক উপাদান ধারণ করে, যেমন সংখ্যা বা চরিত্র।
def range = 1..5
println range // Output: 1..5
এখানে, 1..5
একটি রেঞ্জ যা 1 থেকে 5 পর্যন্ত সংখ্যাগুলি ধারণ করে।
println range.contains(3) // Output: true
println range.size() // Output: 5
এখানে, contains
মেথড ব্যবহার করে চেক করা হয়েছে যে রেঞ্জে একটি নির্দিষ্ট মান রয়েছে কিনা এবং size
মেথড দিয়ে রেঞ্জের আকার বের করা হয়েছে।
Groovy তে Iterable হল একটি কালেকশন যা এলিমেন্টগুলোকে এক এক করে অ্যাক্সেস করার সুযোগ দেয়, যেমন লিস্ট বা সেটের উপাদানগুলো এক এক করে প্রক্রিয়া করা।
def list = [1, 2, 3, 4, 5]
list.each { println it }
এখানে, each
মেথড ব্যবহার করে লিস্টের প্রতিটি উপাদান এক এক করে প্রিন্ট করা হয়েছে।
Groovy তে কালেকশনের উপর আরও অনেক শক্তিশালী মেথড রয়েছে যা কোডকে আরও কার্যকরী এবং সংক্ষিপ্ত করে তোলে। এর মধ্যে কিছু গুরুত্বপূর্ণ মেথড:
collect
: একটি কালেকশনের প্রতিটি উপাদানের উপর অপারেশন প্রয়োগ করে একটি নতুন কালেকশন তৈরি করা।
def numbers = [1, 2, 3, 4]
def doubled = numbers.collect { it * 2 }
println doubled // Output: [2, 4, 6, 8]
find
: একটি কালেকশন থেকে প্রথম মিল পাওয়া উপাদান রিটার্ন করা।
def numbers = [1, 2, 3, 4, 5]
def found = numbers.find { it > 3 }
println found // Output: 4
eachWithIndex
: প্রতিটি উপাদান এবং তার ইনডেক্সের উপর অপারেশন প্রয়োগ করা।
def numbers = [1, 2, 3, 4]
numbers.eachWithIndex { num, idx -> println "Index: $idx, Value: $num" }
Groovy তে কালেকশনস শক্তিশালী এবং নমনীয় ডেটা স্ট্রাকচার, যা ডেটা স্টোর এবং প্রসেসিংয়ের জন্য ব্যবহৃত হয়। Groovy তে লিস্ট, সেট, ম্যাপ, রেঞ্জ এবং অন্যান্য কালেকশন ব্যবহার করে আপনি ডেটা সংগ্রহ করতে এবং তার উপরে বিভিন্ন অপারেশন করতে পারবেন। Groovy তে ডাইনামিক টাইপিং ব্যবহৃত হওয়ার কারণে কালেকশনের উপাদান সহজেই এক্সেস ও পরিবর্তন করা সম্ভব। Groovy কালেকশনের বিভিন্ন মেথড যেমন collect
, each
, find
ইত্যাদি আপনাকে আরও কার্যকরী এবং সংক্ষিপ্ত কোড লেখার সুবিধা দেয়।
Groovy তে Lists, Sets, এবং Maps হচ্ছে সংগ্রহশীল ডেটা স্ট্রাকচার, যা বিভিন্ন ধরনের ডেটা সংরক্ষণ ও প্রক্রিয়াকরণের জন্য ব্যবহার করা হয়। Java Collections Framework এর উপর ভিত্তি করে তৈরি, এগুলো Groovy তে আরও সহজে এবং সংক্ষিপ্তভাবে ব্যবহার করা যায়।
List একটি সিকোয়েন্সড সংগ্রহশীল ডেটা স্ট্রাকচার যা কোনো নির্দিষ্ট ক্রমানুসারে ডেটা সংরক্ষণ করে। Groovy তে List বিভিন্ন ধরনের ডেটা ধরতে সক্ষম এবং একই লিস্টে একাধিক ডেটা টাইপ সংরক্ষণ করা যায়।
def numbers = [1, 2, 3, 4, 5]
println numbers // Output: [1, 2, 3, 4, 5]
println numbers[0] // Output: 1
println numbers.size() // Output: 5
// মান যোগ করা
numbers << 6
println numbers // Output: [1, 2, 3, 4, 5, 6]
// মান মুছে ফেলা
numbers.remove(2)
println numbers // Output: [1, 2, 4, 5, 6]
পার্থক্য Java এর সাথে: Java তে ArrayList
ব্যবহার করে List তৈরি করা হয়, কিন্তু Groovy তে সরাসরি []
ব্যবহার করেই List ডিক্লার করা যায়।
Set একটি সংগ্রহশীল ডেটা স্ট্রাকচার যা ইউনিক মান সংরক্ষণ করে। অর্থাৎ, কোনো উপাদানের ডুপ্লিকেট থাকা যাবে না। Set এর উপাদানগুলোর নির্দিষ্ট কোনো ক্রম নেই।
def uniqueNumbers = [1, 2, 3, 3, 4, 5] as Set
println uniqueNumbers // Output: [1, 2, 3, 4, 5]
// মান যোগ করা
uniqueNumbers << 6
println uniqueNumbers // Output: [1, 2, 3, 4, 5, 6]
// ডুপ্লিকেট মান যোগ করা
uniqueNumbers << 3
println uniqueNumbers // Output: [1, 2, 3, 4, 5, 6]
পার্থক্য Java এর সাথে: Java তে HashSet
ব্যবহার করে Set তৈরি করা হয়, কিন্তু Groovy তে as Set
ব্যবহার করেই Set ডিক্লার করা যায়।
Map একটি সংগ্রহশীল ডেটা স্ট্রাকচার যা key-value
জোড়ার মাধ্যমে ডেটা সংরক্ষণ করে। প্রতিটি key
ইউনিক হতে হবে, তবে value
ডুপ্লিকেট থাকতে পারে। Map সাধারণত দ্রুত ডেটা অনুসন্ধানের জন্য ব্যবহার করা হয়।
def person = [name: "John", age: 30, city: "New York"]
println person // Output: [name:John, age:30, city:New York]
// নির্দিষ্ট key এর মান পাওয়া
println person['name'] // Output: John
println person.age // Output: 30
// নতুন key-value জোড়া যোগ করা
person.country = "USA"
println person // Output: [name:John, age:30, city:New York, country:USA]
// নির্দিষ্ট key এর মান পরিবর্তন করা
person.age = 31
println person // Output: [name:John, age:31, city:New York, country:USA]
key-value
পেয়ার ব্যবহার করা হয়।key
ইউনিক হতে হবে।পার্থক্য Java এর সাথে: Java তে HashMap
ব্যবহার করে Map তৈরি করা হয়, কিন্তু Groovy তে সরাসরি [key: value]
এর মাধ্যমে Map ডিক্লার করা যায়।
ডেটা স্ট্রাকচার | বৈশিষ্ট্য | উদাহরণ |
---|---|---|
List | ক্রমানুসারে ডেটা সংরক্ষণ, ডুপ্লিকেট মান গ্রহণযোগ্য | def list = [1, 2, 3] |
Set | ইউনিক মান সংরক্ষণ, কোনো ক্রম নেই | def set = [1, 2, 3] as Set |
Map | key-value পেয়ার ব্যবহার করে ডেটা সংরক্ষণ | def map = [name: "John"] |
Groovy তে Lists, Sets, এবং Maps খুব সহজেই তৈরি ও ব্যবহার করা যায়, এবং এর সংক্ষিপ্ত সিনট্যাক্স প্রোগ্রামিংকে আরও সুবিধাজনক করে তোলে।
Groovy তে collection বা সংগ্রহ (যেমন List, Map, Set ইত্যাদি) ব্যবহৃত হয় বিভিন্ন উপাদান ধারণ এবং পরিচালনা করার জন্য। Groovy তে বিভিন্ন ধরনের collection manipulation এর জন্য সহজ এবং শক্তিশালী টুলস রয়েছে। আপনি যে কোনো ধরনের collection (যেমন List, Map, Set) থেকে উপাদান যোগ (Add), মুছে (Remove), এবং আপডেট (Update) করতে পারেন খুবই সহজভাবে।
এখানে Groovy তে Add, Remove, এবং Update করার কিছু উদাহরণ দেওয়া হলো।
Groovy তে collections তে উপাদান যোগ করতে খুব সহজ উপায় রয়েছে। <<
অপারেটর বা add()
মেথড ব্যবহার করে আপনি উপাদান যোগ করতে পারেন।
def numbers = [1, 2, 3, 4]
// List এ নতুন উপাদান যোগ করা
numbers << 5 // অথবা numbers.add(5)
println numbers // আউটপুট: [1, 2, 3, 4, 5]
এখানে, <<
অপারেটর ব্যবহার করা হয়েছে যাতে 5
সংখ্যা numbers
লিস্টে যোগ হয়।
def person = [name: 'John', age: 30]
// Map এ নতুন key-value pair যোগ করা
person['city'] = 'New York'
println person // আউটপুট: [name:John, age:30, city:New York]
এখানে, city
নামক একটি নতুন key-value pair Map এ যোগ করা হয়েছে।
def uniqueNumbers = [1, 2, 3, 4] as Set
// Set এ নতুন উপাদান যোগ করা
uniqueNumbers.add(5)
println uniqueNumbers // আউটপুট: [1, 2, 3, 4, 5]
এখানে, add()
মেথড ব্যবহার করে 5
যোগ করা হয়েছে।
Groovy তে collection থেকে উপাদান মুছে ফেলা খুবই সহজ। আপনি remove()
মেথড অথবা -=
অপারেটর ব্যবহার করতে পারেন।
def numbers = [1, 2, 3, 4, 5]
// List থেকে একটি উপাদান মুছে ফেলা
numbers.remove(3) // অথবা numbers -= 3
println numbers // আউটপুট: [1, 2, 4, 5]
এখানে, remove()
মেথড ব্যবহার করে 3
সংখ্যাটি numbers
লিস্ট থেকে মুছে ফেলা হয়েছে।
def person = [name: 'John', age: 30, city: 'New York']
// Map থেকে একটি key-value pair মুছে ফেলা
person.remove('city')
println person // আউটপুট: [name:John, age:30]
এখানে, remove()
মেথড ব্যবহার করে city
key-value pair মুছে ফেলা হয়েছে।
def uniqueNumbers = [1, 2, 3, 4, 5] as Set
// Set থেকে একটি উপাদান মুছে ফেলা
uniqueNumbers.remove(3)
println uniqueNumbers // আউটপুট: [1, 2, 4, 5]
এখানে, remove()
মেথড ব্যবহার করে 3
সেট থেকে মুছে ফেলা হয়েছে।
Groovy তে collection এ উপাদান আপডেট করাও সহজ। আপনি সরাসরি একটি উপাদানের মান পরিবর্তন করতে পারেন, বা put()
মেথড ব্যবহার করতে পারেন।
def numbers = [1, 2, 3, 4]
// List এ নির্দিষ্ট উপাদান আপডেট করা
numbers[2] = 10
println numbers // আউটপুট: [1, 2, 10, 4]
এখানে, numbers[2] = 10
এর মাধ্যমে 3
এর জায়গায় 10
বসানো হয়েছে।
def person = [name: 'John', age: 30, city: 'New York']
// Map এ key-value pair আপডেট করা
person['age'] = 35
println person // আউটপুট: [name:John, age:35, city:New York]
এখানে, age
key এর মান 30
থেকে 35
তে আপডেট করা হয়েছে।
Set তে আপডেট করার ধারণা কিছুটা ভিন্ন, কারণ Set হল একটি অর্ডারহীন এবং ইউনিক উপাদান ধারণকারী collection। সেক্ষেত্রে, Set এ কোনও উপাদান পরিবর্তন করা সম্ভব নয়, তবে আপনি একটি উপাদান মুছে ফেলে নতুন মান যোগ করতে পারেন।
def uniqueNumbers = [1, 2, 3, 4, 5] as Set
// Set থেকে উপাদান মুছে, নতুন উপাদান যোগ করা
uniqueNumbers.remove(3)
uniqueNumbers.add(10)
println uniqueNumbers // আউটপুট: [1, 2, 4, 5, 10]
<<
অপারেটর বা add()
মেথড ব্যবহার করা হয়। এটি List, Map, এবং Set এর জন্য কার্যকর।remove()
মেথড বা -=
অপারেটর ব্যবহার করা হয়।Groovy তে এই ম্যানিপুলেশনগুলি খুবই সহজ এবং দ্রুত, যা কোড লেখাকে আরও কার্যকর এবং সহজ করে তোলে।
Groovy তে collections (যেমন: List, Map, Set) এর উপর iteration করার জন্য each
এবং collect
খুবই জনপ্রিয় এবং শক্তিশালী মেথড। এই দুটি মেথড ব্যবহার করে আপনি সহজেই একটি collection এর প্রতিটি উপাদান পেতে পারেন এবং সেই উপাদানগুলির উপর বিভিন্ন ধরনের অপারেশন করতে পারেন।
each
মেথডGroovy তে each
একটি গুরুত্বপূর্ণ মেথড যা একটি collection এর প্রতিটি উপাদান নিয়ে কাজ করে। এটি একটি closure গ্রহণ করে এবং প্রতিটি উপাদানের উপর সেই closure প্রয়োগ করে।
each
মেথডের ব্যবহার:each
মেথড সাধারণত একটি List, Set বা Map এর উপর iteration করতে ব্যবহৃত হয়।
each
মেথড প্রতিটি উপাদান নিয়ে closure কল করবে।each
):def numbers = [1, 2, 3, 4, 5]
numbers.each { number ->
println "Number: $number"
}
আউটপুট:
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
এখানে, each
মেথড numbers
List এর প্রতিটি উপাদান নিয়ে closure কল করেছে এবং প্রতিটি উপাদান number
ভেরিয়েবলের মধ্যে এসেছে এবং আউটপুট দেখানো হয়েছে।
each
):def person = [name: "John", age: 30, city: "New York"]
person.each { key, value ->
println "$key: $value"
}
আউটপুট:
name: John
age: 30
city: New York
এখানে, each
মেথড key-value পেয়ার নিয়ে closure কল করছে, এবং প্রতি key-value পেয়ারকে আউটপুটে দেখানো হয়েছে।
collect
মেথডGroovy তে collect
মেথড একটি List বা Set এর উপর iteration করতে ব্যবহৃত হয় এবং এটি একটি নতুন collection তৈরি করে। collect
মেথডের মাধ্যমে আপনি collection এর উপাদানগুলির উপর কোনো অপারেশন প্রয়োগ করে একটি নতুন collection তৈরি করতে পারেন। এটি সাধারণত transforming বা mapping অপারেশনের জন্য ব্যবহৃত হয়।
collect
মেথডের ব্যবহার:collect
মেথড একটি নতুন collection ফেরত দেয়, যেখানে প্রতিটি উপাদান নতুন মানের ভিত্তিতে তৈরি হয়।
collect
):def numbers = [1, 2, 3, 4, 5]
def squares = numbers.collect { it * it }
println squares
আউটপুট:
[1, 4, 9, 16, 25]
এখানে, collect
মেথড প্রতিটি উপাদানকে স্কয়ারে রূপান্তর করেছে এবং নতুন একটি List squares
তৈরি করেছে।
collect
):def person = [name: "John", age: 30, city: "New York"]
def uppercaseKeys = person.collect { key, value -> key.toUpperCase() }
println uppercaseKeys
আউটপুট:
[NAME, AGE, CITY]
এখানে, collect
মেথড key গুলিকে uppercase তে রূপান্তর করেছে এবং একটি নতুন List তৈরি করেছে, যাতে শুধু uppercase keys রয়েছে।
collect
ব্যবহার করে Map তৈরি করা:collect
ব্যবহার করে আপনি নতুন Map তৈরি করতে পারেন, যেখানে নতুন key-value পেয়ার তৈরি হয়।
def numbers = [1, 2, 3, 4, 5]
def squaredMap = numbers.collectEntries { number ->
[(number): number * number]
}
println squaredMap
আউটপুট:
[1:1, 2:4, 3:9, 4:16, 5:25]
এখানে, collectEntries
মেথড ব্যবহার করে number এর উপর কাজ করে নতুন একটি Map তৈরি করা হয়েছে, যেখানে প্রতিটি number এর স্কয়ারকে value হিসেবে দেয়া হয়েছে।
each
এবং collect
এর মধ্যে পার্থক্যফিচার | each | collect |
---|---|---|
ফাংশন | উপাদানগুলির উপর কাজ করার জন্য ব্যবহার হয়। | নতুন collection তৈরি করতে ব্যবহার হয়। |
রিটার্ন ভ্যালু | কোনো রিটার্ন ভ্যালু দেয় না, শুধুমাত্র iteration করে। | নতুন collection (List বা Set) ফেরত দেয়। |
ব্যবহার | সাধারণত side-effects তৈরি করার জন্য, যেমন প্রিন্টিং বা মান পরিবর্তন। | collection এর উপাদানগুলির transformation বা mapping করতে। |
each
মেথড একটি collection এর প্রতিটি উপাদান নিয়ে কাজ করে এবং সাধারণত কোনো side effect তৈরি করে (যেমন প্রিন্টিং, বা কিছু পরিবর্তন)। এটি কোনও নতুন collection তৈরি করে না।collect
মেথড একটি নতুন collection তৈরি করে, যেখানে মূল collection এর উপাদানগুলির উপর কোনো transformation বা mapping করা হয়।collect
মেথড একটি নতুন collection ফেরত দেয়, যেটি original collection এর উপাদানগুলির ভিত্তিতে তৈরি হয়।এই দুটি মেথড Groovy তে collection এর উপর iteration এবং transformation করার জন্য খুবই কার্যকরী এবং সহজ।
filter
, map
, এবং reduce
অপারেশনGroovy তে collections (যেমন List, Set, Map) এর সাথে কার্যকরী ফাংশনাল অপারেশনগুলির মধ্যে অন্যতম হল filter, map, এবং reduce। এগুলি ফাংশনাল প্রোগ্রামিং স্টাইলের অপারেশন, যা আপনাকে একটি কালেকশন বা ডেটার উপর বিভিন্ন ধরনের ম্যানিপুলেশন করতে সহায়ক। Groovy তে এই অপারেশনগুলো খুবই সহজ এবং শক্তিশালী, এবং কোডকে আরও সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে।
filter
অপারেশনfilter
অপারেশন একটি কালেকশন থেকে নির্দিষ্ট শর্ত পূর্ণকারী উপাদানগুলো নির্বাচন করতে ব্যবহৃত হয়। এটি একটি শর্ত (predicate) নিয়ে কাজ করে এবং যে উপাদানগুলি সেই শর্ত পূর্ণ করে, সেগুলো ফিরিয়ে দেয়। এটি মূলত একটি লম্বা তালিকা বা কালেকশন থেকে নির্বাচিত উপাদানগুলির একটি সাবসেট তৈরি করতে ব্যবহার হয়।
filter
উদাহরণ:def numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def evenNumbers = numbers.findAll { it % 2 == 0 } // শুধু even সংখ্যাগুলি ফিল্টার করা হবে
println evenNumbers // Output: [2, 4, 6, 8, 10]
এখানে findAll
একটি Groovy ফাংশন যা filter
অপারেশনের মতো কাজ করে এবং it % 2 == 0
শর্তের মাধ্যমে শুধুমাত্র even সংখ্যাগুলিকে নির্বাচন করা হচ্ছে।
map
অপারেশনmap
অপারেশন একটি কালেকশনের প্রতিটি উপাদানের উপর একটি নির্দিষ্ট ফাংশন প্রয়োগ করে এবং একটি নতুন কালেকশন তৈরি করে। এটি মূল কালেকশনটিকে পরিবর্তন না করে নতুন একটি কালেকশন প্রদান করে, যেখানে প্রতিটি উপাদান ম্যাপ করা হয়।
map
উদাহরণ:def numbers = [1, 2, 3, 4, 5]
def doubledNumbers = numbers.collect { it * 2 } // প্রতিটি উপাদানকে দ্বিগুণ করা হচ্ছে
println doubledNumbers // Output: [2, 4, 6, 8, 10]
এখানে collect
ফাংশনটি একটি map
অপারেশন হিসেবে কাজ করছে এবং প্রতিটি উপাদানকে দ্বিগুণ করে একটি নতুন কালেকশন তৈরি করছে।
reduce
অপারেশনreduce
অপারেশন একটি কালেকশনের সব উপাদানকে একত্রিত করে একটি একক ফলাফল প্রদান করে। এটি সাধারণত একাধিক উপাদানকে কোনো এক কার্যকরী সমীকরণে বা অ্যাকিউমুলেটর প্রক্রিয়ায় পরিণত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, যোগফল, গুণফল, ইত্যাদি।
reduce
উদাহরণ:def numbers = [1, 2, 3, 4, 5]
def sum = numbers.inject(0) { acc, num -> acc + num } // উপাদানগুলো যোগ করা হচ্ছে
println sum // Output: 15
এখানে inject
একটি reduce
অপারেশন হিসেবে কাজ করছে। প্রথমে 0
অ্যাকিউমুলেটর হিসেবে দেওয়া হয়েছে, তারপর প্রতিটি উপাদানকে যোগ করে একক ফলাফল পাওয়া যাচ্ছে (যোগফল)।
def numbers = [1, 2, 3, 4, 5]
def product = numbers.inject(1) { acc, num -> acc * num } // উপাদানগুলো গুণ করা হচ্ছে
println product // Output: 120
এখানে inject
ফাংশনটি গুণফল বের করছে, যেখানে প্রথমে 1
অ্যাকিউমুলেটর হিসেবে ব্যবহার করা হয়েছে এবং প্রতিটি উপাদানকে গুণ করে একক ফলাফল পাওয়া যাচ্ছে।
filter
, map
, এবং reduce
এর উপকারিতাmap
এবং filter
অপারেশনগুলোর মাধ্যমে আপনি মূল কালেকশনটি অপরিবর্তিত রেখে নতুন কালেকশন তৈরি করতে পারেন, যা কোডের পরিষ্কারতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।reduce
অপারেশন ব্যবহার করলে আপনি একাধিক উপাদানকে একত্রিত করতে পারেন, যা একযোগভাবে শক্তিশালী কোডিং স্টাইল গঠন করতে সহায়ক।Groovy তে filter
, map
, এবং reduce
অপারেশনগুলি শক্তিশালী ফাংশনাল প্রোগ্রামিং টুলস। filter
কালেকশন থেকে নির্দিষ্ট উপাদানগুলিকে বেছে নেয়ার জন্য ব্যবহৃত হয়, map
প্রতিটি উপাদানের উপর ফাংশন প্রয়োগ করতে এবং নতুন কালেকশন তৈরি করতে ব্যবহৃত হয়, এবং reduce
সব উপাদানকে একত্রিত করে একটি একক ফলাফল তৈরির জন্য ব্যবহৃত হয়। এগুলি কোডকে সংক্ষিপ্ত, পরিষ্কার এবং কার্যকরী করে তোলে, যা ডেভেলপারদের দ্রুত এবং দক্ষভাবে কাজ করতে সহায়তা করে।
common.read_more